import java.util.Scanner;
public class test_3_3_homework {
    public static int countNum=0;
    public static void hanoi(int n,char pos1,char pos2,char pos3) {
        if(n==1){
            move(pos1,pos3);
        }
        else{
            hanoi(n-1,pos1,pos3,pos2);
            move(pos1,pos3);
            hanoi(n-1,pos2,pos1,pos3);
        }
    }
    public static void move(char posSrc,char posDest){
        countNum++;
        System.out.println(posSrc+"->"+posDest);
    }
    public static void main(String[] args) {
        hanoi(3,'A','B','C');
        System.out.println(countNum);
    }
//    public static int Fib(int n) {
//        if(n==1||n==2){
//            return 1;
//        }
//        else{
//            int tmp=Fib(n-2)+Fib(n-1);
//            return tmp;
//        }
//    }
//    public static void main(String[] args) {//递归求斐波那契数列的第 N 项
//        Scanner scanner=new Scanner(System.in);
//        int n=scanner.nextInt();
//        int r=Fib(n);
//        System.out.println(r);
//    }
//    public static int eveSum(int n) {
//        if(n<=9){
//            return n;
//        }
//        else{
//            int tmp=n%10+eveSum(n/10);
//            return tmp;
//        }
//    }
//    public static void main(String[] args) {//写一个递归方法，输入一个非负整数，返回组成它的数字之和
//        Scanner scanner=new Scanner(System.in);
//        int n=scanner.nextInt();
//        int r=eveSum(n);
//        System.out.println(r);
//    }
//    public static void print(int n) {
//        if(n<=9){
//            System.out.println(n);
//        }
//        else{
//            print(n/10);
//            System.out.println(n%10);
//        }
//    }
//    public static void main(String[] args) {//按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)    （递归）
//        Scanner scanner=new Scanner(System.in);
//        int n=scanner.nextInt();
//        print(n);
//    }
//    public static int Sum(int n) {
//        if(n==1){
//            return 1;
//        }
//        else{
//            int tmp=n+Sum(n-1);
//            return tmp;
//        }
//    }
//    public static void main(String[] args) {//递归求 1 + 2 + 3 + ... + 10
//        Scanner scanner=new Scanner(System.in);
//        int n=scanner.nextInt();
//        int r=Sum(n);
//        System.out.println(r);
//    }
//    public static int Fib(int n) {
//        if(n==1){
//            return 1;
//        }
//        else{
//            int tmp=n*Fib(n-1);
//            return tmp;
//        }
//    }
//    public static void main(String[] args) {//递归求 N 的阶乘
//        Scanner scanner=new Scanner(System.in);
//        int n=scanner.nextInt();
//        int r=Fib(n);
//        System.out.println(r);
//    }
}
